home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / smbfs / history.doc next >
Encoding:
Text File  |  2004-08-03  |  18.1 KB  |  564 lines

  1. smbfs 1.19 (27.11.2000)
  2.  
  3. - Fixed ACTION_FINDOUTPUT implementation; the memory to hold the
  4.   name of the file to be created was released before the file
  5.   was created. This could cause garbage to be written to the
  6.   output file.
  7.  
  8. - Fixed ACTION_COPY_DIR implementation; the name of the lock to
  9.   be duplicated did not get duplicated.
  10.  
  11. - Fixed ACTION_EXAMINE_OBJECT and ACTION_EXAMINE_NEXT
  12.   implementations; protection bits are now reported 'properly'
  13.   with respect to read/write access.
  14.  
  15.  
  16. smbfs 1.20 (27.11.2000)
  17.  
  18. - ACTION_EXAMINE_NEXT now filters out SMB names that include
  19.   '/' or ':' characters.
  20.  
  21.  
  22. smbfs 1.21 (28.11.2000)
  23.  
  24. - Modified ACTION_RENAME_DISK to remove the volume node before
  25.   changing it. It also sends the appropriate diskremove/diskinserted
  26.   input events now.
  27.  
  28. - Reorganized and rewrote the code to reduce dependencies on
  29.   the compiler runtime library.
  30.  
  31. - Unified error reporting code.
  32.  
  33. - SMBFS can now be launched from Workbench using the same parameters
  34.   you would use when starting it from Shell. Error reporting
  35.   has been adapted to show an error requester and to pool error
  36.   messages rather than printing them to the console.
  37.  
  38.  
  39. smbfs 1.22 (30.11.2000)
  40.  
  41. - Fixed the test that looks for file/lock access mode collisions.
  42.  
  43. - No longer changes the case of the password; there is now an
  44.   option to make the change.
  45.  
  46. - Fixed ACTION_SAME_LOCK which was comparing the same lock with
  47.   itself.
  48.  
  49. - Added support for ACTION_EXAMINE_ALL, ACTION_EXAMINE_ALL_END
  50.   and ACTION_WRITE_PROTECT packet types.
  51.  
  52. - No longer allows for files and locks to refer to "." and "..".
  53.   The use of the backslash character '\' is also disallowed in
  54.   Amiga file/directory names.
  55.  
  56.  
  57. smbfs 1.23 (30.11.2000)
  58.  
  59. - In the ExNext()/ExAll() handling functions local error variables
  60.   were shadowing each other. Fixed.
  61.  
  62. - The error reporting requester now also lists the name of the
  63.   service to connect to. This should help in telling different
  64.   invocations of the program apart.
  65.  
  66. - The size of the directory cache is now a configurable option.
  67.  
  68. - Added a new option which forces all name comparisons to be
  69.   done in a case-sensitive fashion.
  70.  
  71. - Reading/writing data to/from a file in chunks larger than
  72.   65535 bytes could fail and cause the file system to hang.
  73.  
  74.  
  75. smbfs 1.24 (1.12.2000)
  76.  
  77. - Added an option to allow hidden files to be omitted from
  78.   directory listings.
  79.  
  80. - Improved upon the error reporting in the code that directly
  81.   calls the TCP/IP API functions.
  82.  
  83. - Reorganized the AmigaDOS packet handling switch..case
  84.   list.
  85.  
  86. - Added support for ACTION_MORE_CACHE packet type. The
  87.   cache in this context refers to the directory scanning
  88.   cache.
  89.  
  90. - Improved upon the host lookup error reporting code.
  91.  
  92. - Added support for file name translation such as via the
  93.   CrossDOS translation table files.
  94.  
  95.  
  96. smbfs 1.25 (2.12.2000)
  97.  
  98. - SMBFS now displays some configuration information as soon as
  99.   it has successfully connected to the file server and is ready
  100.   for action. This output can be suppressed with the new
  101.   "QUIET" command line parameter.
  102.  
  103. - When removing a directory, the error code returned is examined
  104.   more closely to see whether the directory was not yet empty.
  105.  
  106. - When setting the protection bits of a file or directory, the
  107.   file system now treats either 'protected from deletion' and
  108.   'protected from writing' as indications to mark a file as
  109.   write protected. Previously, a file had to be both protected
  110.   from deletion and from writing to be treated as write protected.
  111.  
  112. - Cleaned up the program's data structures and eliminated all
  113.   static data that would hold state information. The entire
  114.   client side is now completely reentrant.
  115.  
  116.  
  117. smbfs 1.26 (3.12.2000)
  118.  
  119. - File and directory names are no longer duplicated in the
  120.   SMB abstraction layer. The strings supplied by the Amiga
  121.   file system layer are referenced instead.
  122.  
  123. - Changed the way the ACTION_MORE_CACHE implementation returns
  124.   its result code to be compatible with current practices.
  125.  
  126.  
  127. smbfs 1.27 (4.12.2000)
  128.  
  129. - The changes I made to the file read command in order to allow it
  130.   to read more than 65535 bytes at a time did not allow read
  131.   attempts at the end of the file to come out properly. Fixed.
  132.  
  133. - Integrated password encryption code lifted from Samba. Hope
  134.   it works as it should, because if it doesn't, I wouldn't know
  135.   how to fix it...
  136.  
  137.  
  138. smbfs 1.28 (4.12.2000)
  139.  
  140. - Oh dear, more fixes to the password encryption code and the
  141.   connection setup to follow it. This time I managed to test the
  142.   code briefly with Samba and password encryption enabled.
  143.   Amazingly, it seems to work this time!
  144.  
  145.  
  146. smbfs 1.29 (6.12.2000)
  147.  
  148. - Writes larger than 65535 bytes could stall and slow down the
  149.   file system. Fixed. [Thore Böckelmann]
  150.  
  151. - The ACTION_MORE_CACHE implementation never returned the total
  152.   number of cache entries allocated. Fixed. [Thore Böckelmann]
  153.  
  154. - Plain text passwords didn't seem to work any more after I made
  155.   the changes to allow for encrypted passwords to be used. Fixed.
  156.  
  157.  
  158. smbfs 1.30 (6.12.2000)
  159.  
  160. - Changed the structure of the share names by which the file system
  161.   refers to the data on the server; they all start with a backslash
  162.   now. This seems to help NT and doesn't break the rest.
  163.  
  164. - For file shares exported using 'share level security', no passwords
  165.   will be transmitted.
  166.  
  167.  
  168. smbfs 1.31 (7.12.2000)
  169.  
  170. - The ACTION_EXAMINE and ACTION_EXAMINE_FH implementations now verify
  171.   that the name to return will fit into the FileInfoBlock's limited
  172.   buffer space.
  173.  
  174. - Deleting files and directories from a directory currently being
  175.   scanned via ACTION_EXAMINE_NEXT or ACTION_EXAMINE_ALL will now cause
  176.   the directory scanner to restart. This is ugly, I know, but at least
  177.   it won't cause the scanning process to hickup or lose entries
  178.   directory entries during its course of duty. The flip side is that
  179.   the scanner will probably return some entries twice. There must
  180.   be a better way to implement this, but for now, this is it.
  181.  
  182. - Tried to make device and volume node removal safer.
  183.  
  184. - SMBFS now always adds a device node to go along with the volume node.
  185.   It's safer that way because for every file system you either have a
  186.   single device node in the system (and no volume node) or a volume
  187.   node *and* a device node. If the device node is missing, there's
  188.   typically something wrong and some application software cannot handle
  189.   this case properly. SMBFS will attempt to add a new, unique device
  190.   node every time it is launched.
  191.  
  192. - When specifying the name of the file system device to add, SMBFS
  193.   now complains if that name already exists.
  194.  
  195.  
  196. smbfs 1.32 (8.12.2000)
  197.  
  198. - File and directory modification dates were always off by six hours and
  199.   one second. I don't know how that happens, it doesn't seem to be a bug
  200.   in the date conversion routines. I worked around the problem by adding
  201.   and subtracting an adjustment value.
  202.  
  203.  
  204. smbfs 1.33 (10.12.2000)
  205.  
  206. - The ACTION_PARENT_DIR implementation did not return a ZERO lock for
  207.   the root directory. Fixed. [Rudolph Riedel]
  208.  
  209. - Replaced the doubly-linked Exec lists with skip lists which
  210.   are better suited for the repeated lookup operations that
  211.   are so common in the file system. This time the list code
  212.   seems to work properly.
  213.  
  214. - Added -- largely untested -- time and date decoding routines for
  215.   directory entries returned by NT.
  216.  
  217.  
  218. smbfs 1.34 (10.12.2000)
  219.  
  220. - Had to take out the skip list code again since it did not seem to
  221.   work reliably.
  222.  
  223. - Further tweaking to the NT date and time decoding code.
  224.  
  225.  
  226. smbfs 1.35 (10.12.2000)
  227.  
  228. - Small modification to the ACTION_EXAMINE_NEXT/ACTION_EXAMINE_ALL code
  229.   which tries to work around a strange effect caused by Amiga Samba
  230.   returning the contents of an empty drawer.
  231.  
  232.  
  233. smbfs 1.36 (11.12.2000)
  234.  
  235. - More fixes to the NT date and time conversion code and the
  236.   strange six hour fixup that seems to be necessary for the
  237.   'regular' time conversion to work.
  238.  
  239.  
  240. smbfs 1.37 (11.12.2000)
  241.  
  242. - Replaced the entire 'regular' date and time conversion code. The
  243.   strange six hour fixup is no longer necessary.
  244.  
  245.  
  246. smbfs 1.38 (11.12.2000)
  247.  
  248. - Ditched the packet size kludges in "sock.c" and "proc.c" I had put
  249.   in there. It seems that only the 'smba_write()'/'smba_read()' code
  250.   could trigger it, and that code was fixed quite a while ago.
  251.  
  252. - Migrated some code changes from the Samba source over to the
  253.   directory scanner.
  254.  
  255. - Maximum transmission size per packet is now the same as the
  256.   number the server allowed us to use rather than a fixed number
  257.   imposed by VM page sizes.
  258.  
  259. - Tried to clean up more of the code.
  260.  
  261. - Discovered that the 'smb_valid_packet()' routine never could have
  262.   worked and fixed it so that it now finally does what it should do.
  263.  
  264. - Better error propagation for some routines in "proc.c".
  265.  
  266. - More streamlined error testing code.
  267.  
  268.  
  269. smbfs 1.39 (11.12.2000)
  270.  
  271. - Almost fixed several bugs in 'smb_proc_readdir_long()'.
  272.  
  273. - 'smb_proc_readdir_long()' does not work correctly. It only seems to
  274.   work, but will fail if the scanner is to restart before the entire
  275.   directory is read. Restored the old behaviour :(
  276.  
  277.  
  278. smbfs 1.40 (13.12.2000)
  279.  
  280. - Took out some more unused and unnecessary code.
  281.  
  282. - Rewrote the time and date conversion routines.
  283.  
  284. - Modified the directory reading code so that it no longer relies
  285.   upon the last directory entry index which doesn't seem to be
  286.   correct most of the time.
  287.  
  288. - Directory scanning errors are now flagged as such.
  289.  
  290.  
  291. smbfs 1.41 (16.12.2000)
  292.  
  293. - In the SMB abstraction layer, the directory cache is now invalidated
  294.   only if the respective action that could have invalidated it succeeds.
  295.  
  296. - Now clears the directory cache only if the respective action would
  297.   have affected the directory being cached.
  298.  
  299. - In debug mode [Ctrl]+F will display a list of open files and allocated
  300.   locks.
  301.  
  302. - Added very silly support for ACTION_SET_COMMENT packet.
  303.  
  304. - Found an interesting bug fix for 'smb_proc_readdir_long()' in the
  305.   Linux 2.4.0 kernel which seemed worth integrating into the file system.
  306.  
  307.  
  308. smbfs 1.42 (19.12.2000)
  309.  
  310. - Integrated Chris Hertel's broadcast name query code. This means that
  311.   the name of the host whose file shares you want to access need no
  312.   longer be in the hosts database. However, you still cannot refer to
  313.   a host solely by its IP address.
  314.  
  315.  
  316. smbfs 1.43 (21.12.2000)
  317.  
  318. - The integrated broadcase name query code would conflict with the
  319.   DNS lookup. Fixed. [Thore Böckelmann]
  320.  
  321. - The NetBIOS name query code now retries four times to get a response
  322.   out of the network.
  323.  
  324. - Put the mysterious 6 hour time offset fix back in.
  325.  
  326.  
  327. smbfs 1.44 (29.12.2000)
  328.  
  329. - Rewrote the host lookup error reporting code to use the appropriate
  330.   API function.
  331.  
  332. - Discovered that all the functionality required by SMBFS was supported
  333.   by the original free AmiTCP 3.0 release. Changed the "bsdsocket.library"
  334.   open parameters.
  335.  
  336. - The ACTION_EXAMINE_OBJECT implementation consistently got the name of
  337.   the root directory wrong. Fixed.
  338.  
  339.  
  340. smbfs 1.45 (7.1.2001)
  341.  
  342. - Discovered why file and directory creation dates were wrong by about
  343.   six hours. Fixed.
  344.  
  345. - The order of the parameters passed to the 'ExAll()' filter hook was
  346.   wrong. Fixed [Thorsteinn Sveinsson and Matt Sealey].
  347.  
  348.  
  349. smbfs 1.46 (1.2.2001)
  350.  
  351. - Removed the workarounds for the mysterious 'off by six hours' bug.
  352.   The time delta value added was consistently wrong.
  353.  
  354.  
  355. smbfs 1.47 (18.2.2001)
  356.  
  357. - The name of the domain/workgroup, the name of the user and the
  358.   password to be used can now be preset using environment variables.
  359.  
  360. - Changed the command line argument template to work better with the
  361.   newly introduced environment variable settings.
  362.  
  363.  
  364. smbfs 1.48 (3.3.2001)
  365.  
  366. - Modified the command template so that the final parameter can no
  367.   longer cause all other parameters to be swallowed. Also updated
  368.   the documentation.
  369.  
  370.  
  371. smbfs 1.49 (3.3.2001)
  372.  
  373. - Handling of ACTION_FINDUPDATE needed improving. It should have
  374.   created a file that didn't already exist. It now does [David Gerber].
  375.  
  376.  
  377. smbfs 1.50 (4.3.2001)
  378.  
  379. - ACTION_FINDUPDATE is now associated with a shared lock. It used
  380.   to be an exclusive lock [David Gerber].
  381.  
  382. - The test to follow ACTION_FINDUPDATE that determines whether the
  383.   file to open already exists now also tries to 'stat()' the file
  384.   in question to find out whether it exists.
  385.  
  386.  
  387. smbfs 1.51 (13.3.2001)
  388.  
  389. - Whoops. The new code to pull data from environment variables didn't
  390.   actually check whether the work group name could be set up properly
  391.   and thus didn't complain about it either. It now notifies you if
  392.   no work group name was provided and none could be found.
  393.  
  394.  
  395. smbfs 1.52 (22.6.2001)
  396.  
  397. - Added another option which allows you to preset the time zone offset
  398.   to use when translating between the local time and the SMB server
  399.   time. Using the default locale doesn't work for that purpose all the
  400.   time since there are so many misconfigured servers out there.
  401.  
  402. - The ACTION_DIE packet didn't have the desired effect if the file
  403.   system didn't have a reason to wait for any resources to be
  404.   released again. It just wouldn't quit. Now it does.
  405.  
  406. - Before it exits, the file system no longer posts a disk change
  407.   event if it was launched from Workbench. I found that the steps
  408.   taken so far could end up deadlocking Workbench.
  409.  
  410.  
  411. smbfs 1.53 (26.6.2001)
  412.  
  413. - Changed the file name parser; it should now be possible to tie assigns
  414.   to files and directories on an smb volume. Since the updated file name
  415.   translation code also is a bit smarter about when to use which
  416.   file name separator character, accesses to the media should be a
  417.   bit faster, too.
  418.  
  419. - When translating path names, trailing '/' characters are now properly
  420.   parsed, i.e. Lock("/",...) should always bring up the parent directory
  421.   [Matt Sealey].
  422.  
  423. - Duplicating a ZERO lock now works as expected.
  424.  
  425.  
  426. smbfs 1.54 (27.6.2001)
  427.  
  428. - Directory and file creation didn't work that properly after applying
  429.   the changes I made to the parser. Fixed [Matt Sealey].
  430.  
  431.  
  432. smbfs 1.55 (3.3.2002)
  433.  
  434. - At least samba 2.2.2-12 on linux can send total_data of 0 bytes. This
  435.   caused sock.c/smb_receive_trans2() malloc() (==AllocVecPooled) to fail
  436.   on smba_readdir(). Fixed [Harry Sintonen].
  437.  
  438. - Added quickfix against crash if smb_abstraction.c/smb_smba_readdir()
  439.   fails. This is by no means a real fix, but at least it doesn't crash
  440.   [Harry Sintonen].
  441.  
  442. - There is definitely something fishy in the smbfs restart/retry scheme,
  443.   it just doesn't work properly (all state data has to be, and is,
  444.   reset when restarts occur, but still it tries to use the old data as if
  445.   nothing happened). Someone should really take a closer look at this
  446.   [Harry Sintonen].
  447.  
  448.  
  449. smbfs 1.56 (3.9.2002)
  450.  
  451. - Rewrote the Setup() code which allocates and initializes the device and
  452.   volume nodes. Lost all Forbid()..Permit() pairs on the way, making the
  453.   code more robust and less weird.
  454.  
  455. - In proc.c/smb_proc_readdir_long() now specifically watches for the
  456.   smb_trans2_request() function return empty data and parameter values.
  457.   This is now treated as an attempt to read from an empty directory.
  458.   Previously, there was a slight change that the information was
  459.   taken seriously even if NULL was returned.
  460.  
  461.  
  462. smbfs 1.57 (3.9.2002)
  463.  
  464. - Ran the code through GCC and rewrote the code to get rid of the compiler
  465.   warnings that appeared to have something more serious about them. This
  466.   includes, for example, comparisons between signed and unsigned values.
  467.  
  468.  
  469. smbfs 1.58 (5.9.2002)
  470.  
  471. - Rebuilt using my own TCP/IP stack SDK. Rebuilding the code with the
  472.   Miami SDK should still be possible, though.
  473.  
  474. - Changed the way smb_proc_readdir_long() aborts the job if no valid
  475.   data is read.
  476.  
  477.  
  478. smbfs 1.59 (10.9.2003)  [Harry Sintonen <sintonen@iki.fi>]
  479.  
  480. - Fixed ACTION_DELETE_OBJECT to restart directory scanning, it
  481.   searched for wrong object. Fixes the problem where every other
  482.   file was skipped when deleting directory.
  483.  
  484.  
  485. smbfs 1.60 (11.2.2004) [Peter Riede <Noster-Riede@T-Online.de>]
  486.  
  487. - Fixed ACTION_SEEK, it doesn't works if followed by ACTION_WRITE.
  488.   Fixes the problem by using the SMBlseek packet instead of just
  489.   remembering the position in the local FileNode structure
  490.  
  491. - Fixed ACTION_SETFILESIZE, has returned an errorcode of 37 instead
  492.   of 0L on success.
  493.  
  494. - Added support for the ACTION_LOCK_RECORD and ACTION_UNLOCK_RECORD
  495.   packets.
  496.  
  497.  
  498. smbfs 1.61 (27.4.2004)
  499.  
  500. - Reworked the ACTION_SEEK implementation. Turns out that the SMB
  501.   lseek packet only seems to work for the Samba server but produces
  502.   unpredictable results with Microsoft flavoured servers. The new
  503.   code, which helps to avoid trouble with overlapping write access
  504.   and seeks, now performs much like the old one except that it
  505.   "notifies" the SMB server of the new file position to be used.
  506.   Tested both with Samba and Windows XP: works as it should.
  507.  
  508.  
  509. smbfs 1.62 (8.5.2004)
  510.  
  511. - Added sanity checks to the record locking code. For example,
  512.   locking a record of length 0 must be considered illegal. Also,
  513.   since the protocol deals with 32 bit signed integers for
  514.   file position and record length, parameters that are "too large"
  515.   and come out as negative values are now rejected.
  516.  
  517.  
  518. smbfs 1.63 (9.5.2004)
  519.  
  520. - Added more sanity checks to the record locking code, this time
  521.   to avoid integer overflows.
  522.  
  523. - Added support for the SMB 'archive' and 'system' file attributes,
  524.   which are mapped to the Amiga 'archived' and 'pure' protection
  525.   bits.
  526.  
  527. - Cleaned up the header files.
  528.  
  529.  
  530. smbfs 1.64 (13.5.2004)
  531.  
  532. - ExamineFH() did not fill in the file protection bits. Fixed.
  533.  
  534. - Ported to AmigaOS4.
  535.  
  536.  
  537. smbfs 1.65 (16.5.2004)
  538.  
  539. - The port numbers of the NetBIOS session and name services are no
  540.   longer hard-coded. They are now looked up (netbios-ns/udp and
  541.   netbios-ssn/tcp), and if that fails, the hard-coded default port
  542.   numbers are used instead.
  543.  
  544. - Tried to reduce the risk of triggering buffer overflows by replacing
  545.   calls to strcpy/strcat. This revealed weaknesses in a number of
  546.   places, including the code that fills in the names of the directory
  547.   entries.
  548.  
  549. - Instead of calling memcpy(), the code now invokes exec.library/CopyMem(),
  550.   which should be a wee bit faster than what the 'C' runtime library can do.
  551.  
  552. - Merged with Peter Riede's changes: for small packets to be sent,
  553.   SMBwrite is used instead of SMBwritebraw (which greatly enhances
  554.   performance), the server max_xmit field is initialized differently
  555.   if the session was opened with a SMBtconx packet and ACTION_SEEK
  556.   no longer sets the error code to an undefined value in case of
  557.   success.
  558.  
  559.  
  560. smbfs 1.66 (10.6.2004)
  561.  
  562. - Added a paranoia check to the ExAll() implementation which should
  563.   avoid trouble with extremely short data buffers.
  564.